home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok10.lha / Speech / SayMore.mod < prev    next >
Text File  |  1993-08-15  |  2KB  |  69 lines

  1. (*********************************************************************
  2.  *
  3.  *  :Program.    SayMore.mod
  4.  *  :Author.     Michael Frieß
  5.  *  :Address.    Kernerstr. 22a
  6.  *  :Address.    7000 Stuttgart 1
  7.  *  :shortcut.   [MiF]
  8.  *  :Version.    1.0
  9.  *  :Date.       01.11.88
  10.  *  :Copyright.  PD
  11.  *  :Language.   Modula-II
  12.  *  :Translator. M2Amiga
  13.  *  :Contents.   Sprechen eines Textes
  14.  *
  15.  *********************************************************************)
  16.  
  17. MODULE SayMore;
  18.  
  19. FROM Arguments IMPORT NumArgs, GetArg;
  20. FROM ASCII      IMPORT eol;
  21. FROM FileSystem IMPORT File, Lookup, Response, Close, ReadChar;
  22. FROM Terminal IMPORT WriteString, WriteLn;
  23. FROM Speech IMPORT OpenNarrator, CloseNarrator, SayPhonemes,
  24.                    DefaultVoice, language, Translate;
  25. FROM SYSTEM IMPORT ADR;
  26.  
  27.  
  28. VAR Phonemes      : ARRAY [0..600] OF CHAR;
  29.     FileName, Str : ARRAY [0..255] OF CHAR;
  30.     ch            : CHAR;
  31.     i, Result     : INTEGER;
  32.     n       : LONGINT;
  33.     f       : File;
  34.  
  35. BEGIN
  36.  IF NumArgs() # 1 THEN
  37.   WriteString ("USAGE: SayMore >FileName<"); WriteLn;
  38.   WriteLn;
  39.   WriteString ("SayMore says the text of FileName in German (!).");
  40.   WriteLn;
  41.  ELSE
  42.   GetArg (1, FileName, Result);
  43.   Lookup (f, FileName, 1000, FALSE);
  44.   IF f.res # done THEN
  45.    WriteString ("Datei konnte nicht eröffnet werden.");
  46.    WriteLn
  47.   ELSE
  48.    OpenNarrator (FALSE);
  49.    i := 0; Str := "";
  50.    WHILE NOT f.eof DO
  51.     ReadChar (f, ch);
  52.     IF (ch = eol) THEN
  53.      Str[i] := CHR(0);
  54.      Result := Translate (Str, Phonemes, German);
  55.      IF Result = 0 THEN
  56.       SayPhonemes (Phonemes, DefaultVoice)
  57.      END;
  58.      i := 0;
  59.      Str := ""
  60.     ELSE
  61.      Str[i] := ch;
  62.      INC(i);
  63.     END;
  64.    END;
  65.    CloseNarrator
  66.   END
  67.  END
  68. END SayMore.
  69.